/**
 * 计算给定二叉树的所有左叶子之和。
 * 
 *  3
   / \
  9  20
    /  \
   15   7

在这个二叉树中，有两个左叶子，分别是 9 和 15，所以返回 24
 */


 // bfs
 /**
 * @param {TreeNode} root
 * @return {number}
 */
var sumOfLeftLeaves = function (root) {
    if (!root) return 0
    let count = 0
    const queue = [root]
    while (queue.length !== 0) {
        const size = queue.length
        let i = 0
        for (; i < size; i++) {
            let cur = queue.shift()
            if (cur.left) {
                if (!cur.left.left && !cur.left.right) { count += cur.left.val }
                queue.push(cur.left)
            }
            if (cur.right) {
                queue.push(cur.right)
            }
        }
    }
    return count
};


// dfs
